package com.ruoyi.file.service;

import java.util.List;

import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.file.domain.FileAddDto;
import com.ruoyi.file.domain.FileAddRasterImageDto;
import com.ruoyi.file.domain.FilePublishDto;
import com.ruoyi.file.domain.TblFile;
import com.ruoyi.gis.domain.GisLayer;

/**
 * 文件管理Service接口
 *
 * @author rww
 * @date 2023-09-05
 */
public interface ITblFileService
{
    /**
     * 查询文件管理
     *
     * @param id 文件管理主键
     * @return 文件管理
     */
    public TblFile selectTblFileById(Long id);

    /**
     * 查询文件管理列表
     *
     * @param tblFile 文件管理
     * @return 文件管理集合
     */
    public List<TblFile> selectTblFileList(TblFile tblFile);

    /**
     * 新增文件管理
     *
     * @param tblFile 文件管理
     * @return 结果
     */
    public int insertTblFile(TblFile tblFile);

    /**
     * 修改文件管理
     *
     * @param tblFile 文件管理
     * @return 结果
     */
    public int updateTblFile(TblFile tblFile);

    /**
     * 批量删除文件管理
     *
     * @param ids 需要删除的文件管理主键集合
     * @return 结果
     */
    public int deleteTblFileByIds(Long[] ids);

    /**
     * 删除文件管理信息
     *
     * @param id 文件管理主键
     * @return 结果
     */
    public int deleteTblFileById(Long id);

    TblFile addFolder(Long userId, Long pid, String fileName);

    long sumFolderSize(Long id);

    void updateFolderSize(Long pid);

    GisLayer addParentLayer(TblFile entity, LoginUser loginUser);

    List<FilePublishDto> saveFile(LoginUser loginUser, FileAddDto fileAddDto);

    void publishFile(Long id, LoginUser loginUser);

    TblFile selectTblFileDetailById(Long id);


    void addRasterImages(LoginUser loginUser, FileAddRasterImageDto dto);

}
